package Collection;
	/*
	 * 迭代器  集合遍历
	 * 
	 * 1.使用数组 xxx.toArray();
	 * 
	 * 2.使用迭代器 Iterator  
	 	Iterator it = list.iterator();
	 	【迭代器就是个容器，list集合调用iterator()，; 变成一个迭代器。 然后赋值给迭代器类型的it对象】
	 	2.1 放入 迭代器的 所有元素， 自动提升 成 Object类型
	 	【迭代器'游标 = 数组'元素】
	 	2.2 xxx.next(); xxx迭代器，获取当前游标的元素，然后 游标 往后移一位
	 	
	 	2.3 xxx.hasnext(); 判断 当前 的游标 ，里面有没有东西了  有true  没有false
	 	
	 	2.4 xxx.next(); 循环(xxx.hasnext()当前游标有没有东西)  有(xxx.next(),1.打印当前游标里面的东西。 2.游标值++)
	 		相当于  打印+递增
	 *
	 * 3.迭代器 遍历 集合(自定义类)
	  	创建自定义类（属性 方法 构造器）
	   	把自定义类添加到集合
	   	迭代器 获取集合  集合元素 自动提升成Object类
	   	遍历 迭代器
	  	迭代器 游标里的元素 强转回 自定义类
	   	调用自定义里的方法
	 *
	 * 4.
	 */

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

import org.junit.Test;

public class 使用迭代器Iterator_关于遍历集合 {
	
	
	public static void main(String[] args) {

	}
		
	// 2.使用迭代器遍历集合
	@Test
	@SuppressWarnings({ "rawtypes", "unused", "unchecked" }) //扫黄 无视不定义泛型警告
	public void 使用_迭代器() {
		//2.迭代器遍历
		Collection list01 = new ArrayList();
		list01.add("a");	list01.add("b");	list01.add("c");	list01.add("d");
		Iterator it1 = list01.iterator();
		while (it1.hasNext()) {
			System.out.println( it1.next());
		}
	}//使用_迭代器() 
	
	
	// 3.使用迭代器遍历  集合（自定义类）
	@Test
	@SuppressWarnings({ "rawtypes", "unused", "unchecked" }) //扫黄 无视不定义泛型警告
	public void 使用_迭代器_遍历自定义类() {
		Collection list3 = new ArrayList();
		list3.add(new Cat_迭代器("大野猫"));
		list3.add(new Cat_迭代器("小乖猫"));
		list3.add(new Cat_迭代器("加肥猫"));
		
		Iterator it3 = list3.iterator();
		while (it3.hasNext()) {
			Cat_迭代器 c3 = (Cat_迭代器)it3.next();
			c3.showMe();
		}
	}

}
